package com.kerrykidz.workflow.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.system.vo.FormSyncVo;
import com.kerrykidz.workflow.dao.model.ActivitiEntity;
import com.kerrykidz.workflow.vo.SearchParamVo;
import com.rdp.framework.exception.RDPException;


@Repository
public interface ActivitiEntityMapper {
	
	/**
	 * 查询表单数据
	 * @param pkId
	 * @param tableName
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月4日
	 */
	public List<FormSyncVo> queryFormDate(@Param("pkId")String pkId,@Param("tableName")String tableName)throws RDPException;
	
	/**
	 * 查询库存数据
	 * @param pkId
	 * @param tableName
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月4日
	 */
	public List<FormSyncVo> queryStockDate()throws RDPException;
	
	/**
	 * 从总部更新表单数据到门店
	 * @param formDateList
	 * @throws RDPException
	 * @date: 2014年11月4日
	 */
	public void updateFormStatus(@Param("syncVo") FormSyncVo syncVo)throws RDPException;
	
	/**
	 * 从总部的库存数据更新门店的库存数量
	 * @param formDateList
	 * @throws RDPException
	 * @date: 2014年11月4日
	 */
	public void updateStockCnt(@Param("syncVo") FormSyncVo syncVo)throws RDPException;
	
	/**
	 * 获取指定流程实例的所有历史处理记录
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	public List<ActivitiEntity> queryHisOptByProcId(@Param("procId") String procId) throws RDPException;
	
	/**
	 * 获取当前流程的当前用户的当前任务实例
	 * @param procId
	 * @param userId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	public ActivitiEntity queryCurrtTaskByProcId(@Param("procId") String procId,@Param("userId") String userId) throws RDPException;
	
	/**
	 * 获取所有的流程定义
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月19日
	 */
	public List<ActivitiEntity> queryProcDef() throws RDPException;
	
	/**
	 * 我的待办任务
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月28日
	 */
	public List<ActivitiEntity> indexTodoTask(SearchParamVo searchParam)throws RDPException;
	
	/**
	 * 我的已办任务
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月28日
	 */
	public List<ActivitiEntity> indexFinishTask(SearchParamVo searchParam)throws RDPException;
	
	
	/**  =============================定时下载总部流程数据=================================   */
	/**
	 * 查询所有的act_re_procdef
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryProcdef()throws RDPException;
	
	/**
	 * 同步下载总部act_re_procdef
	 * @param procdefList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertProcdef(@Param("procdefList")List<ActivitiEntity> procdefList)throws RDPException;
	/**
	 * 查询所有的act_ru_execution
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryExecution()throws RDPException;
	
	/**
	 * 同步下载总部act_ru_execution
	 * @param executionList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertExecution(@Param("executionList")List<ActivitiEntity> executionList)throws RDPException;
	/**
	 * 查询所有的act_ru_task
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryTask()throws RDPException;
	
	/**
	 * 同步下载总部act_ru_task
	 * @param taskList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertTask(@Param("taskList")List<ActivitiEntity> taskList)throws RDPException;
	
	/**
	 * 查询所有的act_ru_identitylink
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryIdentitylink()throws RDPException;
	
	/**
	 * 同步下载总部act_ru_identitylink
	 * @param identitylinkList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertIdentitylink(@Param("identitylinkList")List<ActivitiEntity> identitylinkList)throws RDPException;
	/**
	 * 查询所有的act_hi_comment
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryComment()throws RDPException;
	
	/**
	 * 同步下载总部act_hi_comment
	 * @param commentList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertComment(@Param("commentList")List<ActivitiEntity> commentList)throws RDPException;
	/**
	 * 查询所有的act_hi_varinst
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryVarinst()throws RDPException;
	
	/**
	 * 同步下载总部act_hi_varinst
	 * @param varinstList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertVarinst(@Param("varinstList")List<ActivitiEntity> varinstList)throws RDPException;
	/**
	 * 查询所有的act_hi_taskinst
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryTaskinst()throws RDPException;
	
	/**
	 * 同步下载总部act_hi_taskinst
	 * @param taskinstList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertTaskinst(@Param("taskinstList")List<ActivitiEntity> taskinstList)throws RDPException;
	/**
	 * 查询所有的act_hi_procinst
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryProcinst()throws RDPException;
	
	/**
	 * 同步下载总部act_hi_procinst
	 * @param procinstList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertProcinst(@Param("procinstList")List<ActivitiEntity> procinstList)throws RDPException;
	
	/**
	 * 查询所有的act_hi_identitylink
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public List<ActivitiEntity> queryHiIdentitylink()throws RDPException;
	
	/**
	 * 同步下载总部act_hi_identitylink
	 * @param hiIdentitylinkList
	 * @throws RDPException
	 * @date: 2014年10月9日
	 */
	public void insertHiIdentitylink(@Param("hiIdentitylinkList")List<ActivitiEntity> hiIdentitylinkList)throws RDPException;
}